package com.abeir.bilibili.cmmand;

public interface Commander {

    interface Options {
        boolean hasOption(String name);
        String getValue(String name);
        String[] getValues(String name);
    }

    @FunctionalInterface
    interface Callback{
        public void call(Options options) throws OptionException;
    }

    void registerCommand(String shortCommand, String longCommand, boolean hasArg, String help);
    void setApplicationName(String name);
    void setCallback(Callback callback);
    void usage();
    boolean parse(String[] args) throws Exception;
}
